The present invention relates to a data buffer for a label reading system including a data processor. Recently, data processor or computer based systems for inventory control have seen widespread use in supermarkets, department stores, warehouses, and the like. The successful operation of these computerized inventory systems is dependent, typically, upon the ability of certain peripheral equipment known as label readers to reliably read data encoded into labels associated with the inventory goods or items, and to then provide correct data to the centralized computer or data processor. Such a label reader system typically includes a plurality of separate and independent label readers, each being used independently, and sometimes simultaneously, to read labels associated with distinct and separate inventory items, and each being operably connected to the centralized computer or data processor so that its output data may be communicated to the computer.
Typical label codes associated with inventory items include so called bar codes consisting of a plurality of bars of different widths or colors. The arrangements of the bars in such a code can be interpreted by the centralized computer or data processor, based upon the data provided by the label readers, to identify the particular inventory items involved. Such bar codes are usually printed on a price tag or other label associated with the inventory items.
In such a label reader system, problems can arise in forwarding the data to the centralized data processor from each of the several remotely located label readers. These problems can arise, for example, because each label reader is operated separately, and in certain instances, each label reader will simultaneously be reading separate labels. If a number of separate label readers are each being used intensively to read labels, simultaneous or nearly simultaneous label reading will occur. When such a situation exists a procedure must be implemented so that each of the plurality of label readers do not separately, simultaneously, attempt to communicate their respective output data to the central data processor. Similar problems can arise if one or more label readers in such a system are capable of providing bursts of output data at a higher rate than the rate at which the central computer is capable of receiving the data.
Two basic approaches have been employed conventionally to cope with these problems. With the so-called programmed transfer method, the central data processor, for example, sequentially accesses or interrogates each of the label readers in the system. This approach has proven of limited utility or even of impracticability in situations in which the central data processor cannot scan the availability of output data from each of a plurality of separate label readers rapidly enough to be certain of accepting all of the output data which may be available at a given instant. The second basic method, the so-called direct memory access (DMA) method, is an approach in which each label reader is operably connected to the memory of the central computer by means of a direct memory access technique. The principal disadvantage of this approach is that DMA techniques usually involve cycle "stealing" wherein DMA data transfers occur by inhibiting the otherwise ongoing operation of the central data processor during the DMA transfer. With either of these basic techniques, the efficiency of the centralized computer is greatly reduced by the necessity for loading data from the label readers into the memory at frequent, but random points in time.